package com.example.order.properties;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 自动从配置中心（比如 Nacos）中读取以 order. 开头的属性，批量绑定到 Java 对象中，并且支持自动刷新（无需 @RefreshScope）
 *
 * @ConfigurationProperties 负责“数据绑定”
 * @Component 负责“Bean 注册”
 * 二者合体 = 这个类能被自动加载 + 配置自动注入 ✅
 * 因为 @ConfigurationProperties 本身不带扫描能力，所以必须加 @Component 或手动注册 Bean
 */
// 来自 Lombok，自动生成 getter/setter、toString、equals/hashCode
@Data
// 让 Spring 扫描并注册这个类为 Bean，才能被其他地方注入
@Component
// 从配置中读取所有 order.* 开头的属性，自动绑定到这个类
@ConfigurationProperties(prefix = "order")
public class OrderProperties {

    String timeout;

    /**
     * （属性名用 - 连接，Java 字段用 camelCase）是 Spring Boot 自动支持的。
     */
    String autoConfirm;

    String dbUrl;

}